↳ ITRS
↳ ITRStoQTRSProof
z
cond(TRUE, x, y) → 1@z
cond(FALSE, x, y) → *@z(2@z, log(x, *@z(y, y)))
logNat(TRUE, x, y) → cond(<=@z(x, y), x, y)
log(x, y) → logNat(&&(>=@z(x, 0@z), >=@z(y, 2@z)), x, y)
cond(TRUE, x0, x1)
cond(FALSE, x0, x1)
logNat(TRUE, x0, x1)
log(x0, x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(false, x, y) → MULT_INT(pos(s(s(0))), log(x, mult_int(y, y)))
COND(false, x, y) → LOG(x, mult_int(y, y))
COND(false, x, y) → MULT_INT(y, y)
LOGNAT(true, x, y) → COND(lesseq_int(x, y), x, y)
LOGNAT(true, x, y) → LESSEQ_INT(x, y)
LOG(x, y) → LOGNAT(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
LOG(x, y) → AND(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0)))))
LOG(x, y) → GREATEREQ_INT(x, pos(0))
LOG(x, y) → GREATEREQ_INT(y, pos(s(s(0))))
MULT_INT(pos(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(pos(x), neg(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), neg(y)) → MULT_NAT(x, y)
MULT_NAT(s(x), s(y)) → PLUS_NAT(mult_nat(x, s(y)), s(y))
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
LESSEQ_INT(pos(s(x)), pos(s(y))) → LESSEQ_INT(pos(x), pos(y))
LESSEQ_INT(neg(s(x)), neg(s(y))) → LESSEQ_INT(neg(x), neg(y))
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
COND(false, x, y) → MULT_INT(pos(s(s(0))), log(x, mult_int(y, y)))
COND(false, x, y) → LOG(x, mult_int(y, y))
COND(false, x, y) → MULT_INT(y, y)
LOGNAT(true, x, y) → COND(lesseq_int(x, y), x, y)
LOGNAT(true, x, y) → LESSEQ_INT(x, y)
LOG(x, y) → LOGNAT(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
LOG(x, y) → AND(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0)))))
LOG(x, y) → GREATEREQ_INT(x, pos(0))
LOG(x, y) → GREATEREQ_INT(y, pos(s(s(0))))
MULT_INT(pos(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(pos(x), neg(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), neg(y)) → MULT_NAT(x, y)
MULT_NAT(s(x), s(y)) → PLUS_NAT(mult_nat(x, s(y)), s(y))
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
LESSEQ_INT(pos(s(x)), pos(s(y))) → LESSEQ_INT(pos(x), pos(y))
LESSEQ_INT(neg(s(x)), neg(s(y))) → LESSEQ_INT(neg(x), neg(y))
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
No rules are removed from R.
GREATEREQ_INT(neg(s(x)), neg(s(y))) → GREATEREQ_INT(neg(x), neg(y))
POL(GREATEREQ_INT(x1, x2)) = 2·x1 + x2
POL(neg(x1)) = x1
POL(s(x1)) = 2·x1
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
No rules are removed from R.
GREATEREQ_INT(pos(s(x)), pos(s(y))) → GREATEREQ_INT(pos(x), pos(y))
POL(GREATEREQ_INT(x1, x2)) = 2·x1 + x2
POL(pos(x1)) = x1
POL(s(x1)) = 2·x1
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
LESSEQ_INT(neg(s(x)), neg(s(y))) → LESSEQ_INT(neg(x), neg(y))
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
LESSEQ_INT(neg(s(x)), neg(s(y))) → LESSEQ_INT(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
LESSEQ_INT(neg(s(x)), neg(s(y))) → LESSEQ_INT(neg(x), neg(y))
No rules are removed from R.
LESSEQ_INT(neg(s(x)), neg(s(y))) → LESSEQ_INT(neg(x), neg(y))
POL(LESSEQ_INT(x1, x2)) = 2·x1 + x2
POL(neg(x1)) = x1
POL(s(x1)) = 2·x1
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
LESSEQ_INT(pos(s(x)), pos(s(y))) → LESSEQ_INT(pos(x), pos(y))
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
LESSEQ_INT(pos(s(x)), pos(s(y))) → LESSEQ_INT(pos(x), pos(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ QDP
↳ QDP
LESSEQ_INT(pos(s(x)), pos(s(y))) → LESSEQ_INT(pos(x), pos(y))
No rules are removed from R.
LESSEQ_INT(pos(s(x)), pos(s(y))) → LESSEQ_INT(pos(x), pos(y))
POL(LESSEQ_INT(x1, x2)) = 2·x1 + x2
POL(pos(x1)) = x1
POL(s(x1)) = 2·x1
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
From the DPs we obtained the following set of size-change graphs:
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(x, y) → LOGNAT(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
LOGNAT(true, x, y) → COND(lesseq_int(x, y), x, y)
cond(true, x, y) → pos(s(0))
cond(false, x, y) → mult_int(pos(s(s(0))), log(x, mult_int(y, y)))
logNat(true, x, y) → cond(lesseq_int(x, y), x, y)
log(x, y) → logNat(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(0), neg(y)) → true
greatereq_int(pos(x), neg(y)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(neg(s(x)), neg(0)) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
greatereq_int(neg(s(x)), neg(s(y))) → greatereq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(x, y) → LOGNAT(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
LOGNAT(true, x, y) → COND(lesseq_int(x, y), x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
cond(true, x0, x1)
cond(false, x0, x1)
logNat(true, x0, x1)
log(x0, x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(x, y) → LOGNAT(and(greatereq_int(x, pos(0)), greatereq_int(y, pos(s(s(0))))), x, y)
LOGNAT(true, x, y) → COND(lesseq_int(x, y), x, y)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ QDP
↳ RemovalProof
↳ Narrowing
COND(false, x, y, x_removed) → LOG(x, mult_int(y, y), x_removed)
LOG(x, y, x_removed) → LOGNAT(and(greatereq_int(x, pos(0)), greatereq_int(y, x_removed)), x, y, x_removed)
LOGNAT(true, x, y, x_removed) → COND(lesseq_int(x, y), x, y, x_removed)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ QDP
↳ Narrowing
COND(false, x, y, x_removed) → LOG(x, mult_int(y, y), x_removed)
LOG(x, y, x_removed) → LOGNAT(and(greatereq_int(x, pos(0)), greatereq_int(y, x_removed)), x, y, x_removed)
LOGNAT(true, x, y, x_removed) → COND(lesseq_int(x, y), x, y, x_removed)
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOG(neg(0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), neg(0), y1)
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(y0, pos(0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, pos(0))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
COND(false, x, y) → LOG(x, mult_int(y, y))
LOGNAT(true, x, y) → COND(lesseq_int(x, y), x, y)
LOG(neg(0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), neg(0), y1)
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(y0, pos(0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, pos(0))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOGNAT(true, pos(0), neg(0)) → COND(true, pos(0), neg(0))
LOGNAT(true, neg(x0), pos(x1)) → COND(true, neg(x0), pos(x1))
LOGNAT(true, pos(0), pos(x0)) → COND(true, pos(0), pos(x0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOGNAT(true, neg(x0), neg(0)) → COND(true, neg(x0), neg(0))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(neg(0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), neg(0), y1)
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(y0, pos(0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, pos(0))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOGNAT(true, pos(0), neg(0)) → COND(true, pos(0), neg(0))
LOGNAT(true, neg(x0), pos(x1)) → COND(true, neg(x0), pos(x1))
LOGNAT(true, pos(0), pos(x0)) → COND(true, pos(0), pos(x0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOGNAT(true, neg(x0), neg(0)) → COND(true, neg(x0), neg(0))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
LOG(neg(0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), neg(0), y1)
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, pos(0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, pos(0))
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(0), neg(0)) → true
lesseq_int(neg(x), pos(y)) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(pos(x), neg(s(y))) → false
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), neg(y)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
LOG(neg(0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), neg(0), y1)
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, pos(0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, pos(0))
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOG(neg(0), pos(0)) → LOGNAT(and(true, false), neg(0), pos(0))
LOG(neg(0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), neg(0), pos(s(x0)))
LOG(neg(0), neg(x0)) → LOGNAT(and(true, false), neg(0), neg(x0))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, pos(0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, pos(0))
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOG(neg(0), pos(0)) → LOGNAT(and(true, false), neg(0), pos(0))
LOG(neg(0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), neg(0), pos(s(x0)))
LOG(neg(0), neg(x0)) → LOGNAT(and(true, false), neg(0), neg(x0))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, pos(0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, pos(0))
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOG(neg(0), pos(0)) → LOGNAT(and(true, false), neg(0), pos(0))
LOG(pos(x0), pos(0)) → LOGNAT(and(true, false), pos(x0), pos(0))
LOG(neg(s(x0)), pos(0)) → LOGNAT(and(false, false), neg(s(x0)), pos(0))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOG(neg(0), pos(0)) → LOGNAT(and(true, false), neg(0), pos(0))
LOG(pos(x0), pos(0)) → LOGNAT(and(true, false), pos(x0), pos(0))
LOG(neg(s(x0)), pos(0)) → LOGNAT(and(false, false), neg(s(x0)), pos(0))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(neg(s(x0)), y1) → LOGNAT(and(false, greatereq_int(y1, pos(s(s(0))))), neg(s(x0)), y1)
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOG(neg(s(y0)), pos(s(x0))) → LOGNAT(and(false, greatereq_int(pos(x0), pos(s(0)))), neg(s(y0)), pos(s(x0)))
LOG(neg(s(y0)), pos(0)) → LOGNAT(and(false, false), neg(s(y0)), pos(0))
LOG(neg(s(y0)), neg(x0)) → LOGNAT(and(false, false), neg(s(y0)), neg(x0))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, x, y) → LOG(x, mult_int(y, y))
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOG(neg(s(y0)), pos(s(x0))) → LOGNAT(and(false, greatereq_int(pos(x0), pos(s(0)))), neg(s(y0)), pos(s(x0)))
LOG(neg(s(y0)), pos(0)) → LOGNAT(and(false, false), neg(s(y0)), pos(0))
LOG(neg(s(y0)), neg(x0)) → LOGNAT(and(false, false), neg(s(y0)), neg(x0))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(pos(x0), y1) → LOGNAT(and(true, greatereq_int(y1, pos(s(s(0))))), pos(x0), y1)
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOG(pos(y0), pos(0)) → LOGNAT(and(true, false), pos(y0), pos(0))
LOG(pos(y0), neg(x0)) → LOGNAT(and(true, false), pos(y0), neg(x0))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(0)) → COND(false, pos(s(x0)), pos(0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(y0), pos(0)) → LOGNAT(and(true, false), pos(y0), pos(0))
LOG(pos(y0), neg(x0)) → LOGNAT(and(true, false), pos(y0), neg(x0))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(neg(x), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
and(false, false) → false
and(false, true) → false
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
COND(false, x, y) → LOG(x, mult_int(y, y))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(false, y0, pos(x0)) → LOG(y0, pos(mult_nat(x0, x0)))
COND(false, y0, neg(x0)) → LOG(y0, pos(mult_nat(x0, x0)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, neg(x0)) → LOGNAT(and(greatereq_int(y0, pos(0)), false), y0, neg(x0))
LOGNAT(true, pos(x0), neg(s(x1))) → COND(false, pos(x0), neg(s(x1)))
LOGNAT(true, pos(s(x0)), neg(x1)) → COND(false, pos(s(x0)), neg(x1))
LOGNAT(true, neg(0), neg(s(x0))) → COND(false, neg(0), neg(s(x0)))
LOGNAT(true, neg(s(x0)), neg(s(x1))) → COND(lesseq_int(neg(x0), neg(x1)), neg(s(x0)), neg(s(x1)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
COND(false, y0, pos(x0)) → LOG(y0, pos(mult_nat(x0, x0)))
COND(false, y0, neg(x0)) → LOG(y0, pos(mult_nat(x0, x0)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, y0, pos(x0)) → LOG(y0, pos(mult_nat(x0, x0)))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
lesseq_int(neg(x), neg(0)) → true
lesseq_int(neg(0), neg(s(y))) → false
lesseq_int(neg(s(x)), neg(s(y))) → lesseq_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, y0, pos(x0)) → LOG(y0, pos(mult_nat(x0, x0)))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, y0, pos(x0)) → LOG(y0, pos(mult_nat(x0, x0)))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(mult_nat(s(z1), s(z1))))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(mult_nat(s(z1), s(z1))))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(y0, pos(s(x0))) → LOGNAT(and(greatereq_int(y0, pos(0)), greatereq_int(pos(x0), pos(s(0)))), y0, pos(s(x0)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(greatereq_int(pos(s(z0)), pos(0)), greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(greatereq_int(pos(s(z0)), pos(0)), greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(neg(0), pos(0)) → true
greatereq_int(neg(s(x)), pos(0)) → false
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(greatereq_int(pos(s(z0)), pos(0)), greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(true, greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(true, greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
greatereq_int(pos(x), pos(0)) → true
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(false, false) → false
and(false, true) → false
and(true, false) → false
and(true, true) → true
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Instantiation
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
LOG(pos(y0), pos(s(x0))) → LOGNAT(and(true, greatereq_int(pos(x0), pos(s(0)))), pos(y0), pos(s(x0)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(true, greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(true, greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Instantiation
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ QReductionProof
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(true, greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Instantiation
↳ QDP
↳ RemovalProof
↳ QDP
↳ RemovalProof
↳ QReductionProof
LOGNAT(true, pos(s(x0)), pos(s(x1)), x_removed) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)), x_removed)
COND(false, pos(s(z0)), pos(s(z1)), x_removed) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))), x_removed)
LOG(pos(s(z0)), pos(s(x1)), x_removed) → LOGNAT(and(true, greatereq_int(pos(x1), x_removed)), pos(s(z0)), pos(s(x1)), x_removed)
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Instantiation
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ QDP
↳ QReductionProof
LOGNAT(true, pos(s(x0)), pos(s(x1)), x_removed) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)), x_removed)
COND(false, pos(s(z0)), pos(s(z1)), x_removed) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))), x_removed)
LOG(pos(s(z0)), pos(s(x1)), x_removed) → LOGNAT(and(true, greatereq_int(pos(x1), x_removed)), pos(s(z0)), pos(s(x1)), x_removed)
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(pos(s(x0)), pos(s(x1)))
lesseq_int(neg(s(x0)), neg(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(pos(s(x0)), pos(s(x1)))
greatereq_int(neg(s(x0)), neg(s(x1)))
lesseq_int(pos(0), neg(0))
lesseq_int(neg(x0), pos(x1))
lesseq_int(neg(x0), neg(0))
lesseq_int(pos(x0), neg(s(x1)))
lesseq_int(neg(0), neg(s(x0)))
lesseq_int(pos(s(x0)), neg(x1))
lesseq_int(neg(s(x0)), neg(s(x1)))
greatereq_int(neg(0), pos(0))
greatereq_int(neg(0), neg(x0))
greatereq_int(pos(x0), neg(x1))
greatereq_int(neg(x0), pos(s(x1)))
greatereq_int(neg(s(x0)), pos(0))
greatereq_int(neg(s(x0)), neg(0))
greatereq_int(neg(s(x0)), neg(s(x1)))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Rewriting
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Instantiation
↳ QDP
↳ RemovalProof
↳ RemovalProof
↳ QReductionProof
↳ QDP
LOGNAT(true, pos(s(x0)), pos(s(x1))) → COND(lesseq_int(pos(x0), pos(x1)), pos(s(x0)), pos(s(x1)))
COND(false, pos(s(z0)), pos(s(z1))) → LOG(pos(s(z0)), pos(plus_nat(mult_nat(z1, s(z1)), s(z1))))
LOG(pos(s(z0)), pos(s(x1))) → LOGNAT(and(true, greatereq_int(pos(x1), pos(s(0)))), pos(s(z0)), pos(s(x1)))
lesseq_int(pos(0), pos(y)) → true
lesseq_int(pos(s(x)), pos(0)) → false
lesseq_int(pos(s(x)), pos(s(y))) → lesseq_int(pos(x), pos(y))
greatereq_int(pos(0), pos(s(y))) → false
greatereq_int(pos(s(x)), pos(s(y))) → greatereq_int(pos(x), pos(y))
and(true, false) → false
and(true, true) → true
greatereq_int(pos(x), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
lesseq_int(pos(0), pos(x0))
lesseq_int(pos(s(x0)), pos(0))
lesseq_int(pos(s(x0)), pos(s(x1)))
and(false, false)
and(false, true)
and(true, false)
and(true, true)
greatereq_int(pos(x0), pos(0))
greatereq_int(pos(0), pos(s(x0)))
greatereq_int(pos(s(x0)), pos(s(x1)))